12장 캐시 서버 준비하기


캐시 서버

동일한 결과에 대한 요청을 캐시 서버에 저장해놓고 계산 과정없이 바로 응답을 할 수 있다.
 Attachments/Picture/Pasted image 20231209200747.png|500

캐시 사용시 주의점

레디스와 멤캐시드

캐시는 성능이 중요하기 때문에 잘 만들어진 오픈 소스로 제공되는 캐시 구현을 이용한다.
그 중 널리 사용되는 2가지이다.

일래스틱 캐시

레디스와 멤케시드는 모두 미들웨어로 제공된다. 즉, EC2에서 생성한 리눅스 서버상에 설치해 서버로 작동시킬 수 있다.
그보다는 AWS에서 제공하는 일래스틱캐시라는 매니지드 서비스를 이용하는 편이 좋다.
일래스틱캐시는 레디스나 멤케시드를 이미 적용한 환경을 제공한다.

일래스틱 캐시 계층 시스템

일래스틱캐시는 임의의 키에 대해 캐시된 데이터를 반환하는 간단한 키/값 시스템을 제공한다.
Attachments/Picture/Pasted image 20231209201719.png
일랙스틱 캐시의 계층 시스템은 다음과 같은 요소들로 구성된다.

노드

샤드

클러스터

샤드를 구성하면 단일 노드 장애가 발생했을 때 내결합성 및 읽기 성능을 향상할 수 있다.
클러스터를 구성하면 가용영역에 장애가 발생했을 때 내결합성을 높일 수 있다.
단, 내결합성이 높을 수록 노드 수와 함께 비용도 증가한다.
Attachments/Picture/Pasted image 20231209201822.png

일래스틱캐시 생성하기

멀티 AZ에 각각의 샤드가 존재하고 샤드 안의 노드가 3개(프라이머리 노드 1 + 복제 노드 2) 인 일래스틱 캐시를 만들어보자.
Attachments/Picture/Pasted image 20231209204650.png|500

ElasticCache -> Redis -> 캐시생성

자체 캐시 설계 구성으로 선택해줬다.
서버리스도 괜찮은 선택지로 보인다.
Attachments/Picture/Pasted image 20231209205355.png

배포 유형과 서브넷 그룹을 생성해준다.
VPC를 지정해준다.
서브넷에는 private subnet을 선택해줬다.
=> 일랙스틱캐시가 VPC안에 생성되며 EC2 인스턴스 등에서 이용할 수 있다.
Attachments/Picture/Pasted image 20231209205442.png

작동확인하기

private subnet에 접근 -> nc 명령어로 일래스틱캐시로부터 반응이 돌아오는지 확인
Attachments/Picture/Pasted image 20231211144426.png